#include <stdio.h>

// 手动计算字符串长度
int my_strlen(const char *str) {
    int length = 0;
    while (str[length] != '\0' && str[length] != '\n') {
        length++;
    }
    return length;
}

// 手动去除字符串末尾的换行符
void remove_newline(char *str) {
    int length = my_strlen(str);
    if (length > 0 && str[length - 1] == '\n') {
        str[length - 1] = '\0';
    }
}

void insert(char *s, char *t, int pos) {
    int len_s = my_strlen(s);
    int len_t = my_strlen(t);
    int i, j;

    // 检查插入位置是否超出范围
    if (pos > len_s) {
        return;
    }

    // 检查插入后的字符串长度是否超过缓冲区大小
    if (len_s + len_t >= 100) {
        return;
    }

    // 将 s 中从 pos 位置开始的字符向后移动 len_t 个位置
    for (i = len_s; i >= pos; i--) {
        s[i + len_t-1] = s[i-1];
    }

    // 将 t 插入到 s 的 pos 位置
    for (j = 0; j < len_t; j++) {
        s[pos + j - 1] = t[j];
    }
}

int main() {
    char s[100], t[50];
    int pos;

    // 使用 fgets 读取包含空格的字符串
    if (fgets(s, sizeof(s), stdin) == NULL) {
        return 1;
    }
    if (fgets(t, sizeof(t), stdin) == NULL) {
        return 1;
    }

    // 去掉 fgets 读取的换行符
    remove_newline(s);
    remove_newline(t);

    scanf("%d", &pos);

    insert(s, t, pos);

    printf("%s", s);

    return 0;
}